1. Field of the Invention
The present invention relates generally to Internet client-server applications, and more specifically to guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server.
2. Related Art
The importance to the modern economy of rapid information and data exchange cannot be understated. This explains the exponentially increasing popularity of the Internet. The Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and variety of information electronically.
One method of accessing information on the Internet is known as the World Wide Web (www, or the xe2x80x9cwebxe2x80x9d). The web is a distributed, hypermedia system and functions as a client-server based information presentation system. Information that is intended to be accessible over the web is stored in the form of xe2x80x9cpagesxe2x80x9d on general-purpose computers known as xe2x80x9cservers.xe2x80x9d Computer users can access a web (or HTML) page using general-purpose computers, referred to as xe2x80x9cclients,xe2x80x9d by specifying the uniform resource locator (URL) of the page. FIG. 1 is a network block diagram showing a plurality of clients and servers connected to the Internet.
When a client specifies a URL, a part of the URL known as the Domain Name is passed to a domain server (DNS) to be translated to a network address. The network address specifies the Internet protocol (IP) address of the intended or requested server. The client request is passed to the requested server having the network address. This process of how the client request eventually arrives at the requested server is operating in virtual IP mode. In this mode, the address of the requested server is never published and thus not accessible to the client. Here, the server uses the path name in the URL to locate the web page requested by the client. A copy of the web page is then sent to the client for viewing by the user. A second mode, called standard mode, will be briefly described next.
In standard mode, the actual address of the requested server is published. Here, the client""s specified URL does not include the Domain Name. Therefore, the request does not go through the DNS to eventually arrive at the requested server.
The client-server paradigm described above has served the Internet well. However, there are some problems. One problem is unacceptable server response time when too many clients are requesting a page from the same server. In fact, when this number of clients (i.e., users) exceeds a certain threshold, often times the result is a server failure or crash. A computer crash means that the computer itself stops working or that a program aborts unexpectedly. A crash signifies either a hardware malfunction or a very serious software bug. When the response time for a server is unacceptably slow and/or has a tendency to crash often, the owner of the server may lose business. This loss of business is detrimental to a business person who mainly conducts his or her business on the Internet.
Increasing server response time to a client request may be the result of several factors. One such factor is multitasking. Multitasking, which is well known in the relevant art(s), is the ability to execute more than one task (e.g., URL or page request) at the same time. In multitasking, only one central processing unit (CPU) is involved, but it switches from one task to another so quickly that it attempts to give the appearance of executing all of the tasks at the same time. There are two basic types of multitasking: preemptive and cooperative. In preemptive multitasking, the operating system parcels out CPU time slices to each task. In cooperative multitasking, each task can control the CPU for as long as it needs it. If a task is not using the CPU, however, it can allow another task to use it temporarily. OS/2, Windows 95, Windows NT, the Amiga operating system and UNIX use preemptive multitasking, whereas Microsoft Windows 3.x and the MultiFinder (for Macintosh computers) use cooperative multitasking.
Whether the operating system of a particular server uses preemptive or cooperative multitasking, the response time to URL (page) requests increases as the number of requests increases. Under certain load conditions, these page requests can represent a considerable overhead, consuming a large percentage of the server""s processing resources. What is needed is a way of guaranteeing the response time to a client""s page request at a particular server (or web site), and thereby avoid wasting valuable server CUP time and crashes. In addition, what is needed is a way of providing alternative information to the user (via the client) when the server containing the desired page is not available. By providing alternative information to the user it helps to not only generate possible related business but also redirects the user back to the desired page once the server is free.
The present invention is an apparatus, method and computer program product for guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server. In a preferred embodiment, the present invention is implemented within an interface unit connecting a plurality of servers to the Internet, which is in turn connected to a plurality of clients and on-hold server(s).
According to a preferred embodiment of the present invention, the method includes the steps of opening a connection between a client land the interface unit; determining which server the client desires a page from; determining the current response time of the requested server; if the response time is acceptable then opening a connection between the interface unit and the requested server if no free connection is open between the interface unit and the requested server; allowing the client to access information on the requested server via the connections; and closing the connection between the client and the interface unit while keeping open the connection between the interface unit and the requested server. Alternatively, if the response time is not acceptable, then putting the client on-hold by redirecting the client to an on-hold server until the response time of the requested server becomes acceptable.
In another embodiment of the present invention, instead of utilizing the interface unit, each server has the intelligence to put the client on-hold when applicable.
According to an xe2x80x9con-hold distributionxe2x80x9d aspect of the invention, the interface unit determines the on-hold preference of the client and selects the server hosting that on-hold preference.
One advantage of the present invention is that it guarantees a response time to a client once the client is allowed to access the requested server.
Another advantage of the present invention is that it eliminates one reason for server crashes, too many page requests at the same time.
Yet another advantage of the present invention is that it temporarily puts a client on-hold, and once the requested server is ready to service the client, redirects the client back to the requested server. Putting the client on-hold both helps to generate additional business from the client on other servers and ensures that the client will be eventually redirected back to the requested server.
Another advantage of the present invention is that clients who use the present on-hold invention will be given preferential access over non-clients when attempting to gain access to the requested server (in the case where both clients and non-clients of the present invention can request a web page or content from the requested server).
Another advantage of the present invention is that it provides the flexibility to a user (via the client) to specify his or her on-hold preference through use of a technique referred to herein as xe2x80x9con-hold distribution.xe2x80x9d